home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
tools
/
sharp
/
sxwork1.lzh
/
INCLUDE
/
SXDEF2.H
< prev
next >
Wrap
Text File
|
1994-02-20
|
6KB
|
280 lines
/*
* sxdef2.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
*/
#ifndef __SXDEF2_H
#define __SXDEF2_H
#ifndef __CLASS_H
typedef int BOOLEAN;
#endif
typedef void *Pointer;
typedef void **Handle;
typedef long LPoint;
typedef union Point Point;
typedef union Rect Rect;
typedef struct Region Region;
typedef unsigned short BitImg;
typedef unsigned char LASCII[256];
typedef struct Bitmap Bitmap;
typedef struct Graph Graph;
typedef enum EventCode EventCode;
typedef struct Event Event;
typedef struct Window Window;
typedef struct Subwin Subwin;
typedef union TsEvent TsEvent;
/*
* 以下でTypedef宣言している構造体は、各マネージャのヘッダファイルで
* 実際のstruct宣言を行っています。利用の際は、必ずそのヘッダファイルを
* インクルードしてください。
*/
typedef struct Heap Heap;
typedef struct GScript GScript;
typedef struct Menu Menu;
typedef struct Control Control;
typedef struct Dialog Dialog;
typedef struct TEdit TEdit;
#ifndef NULL
#define NULL ((void *) 0)
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
/*
* XC ver2.1では、可変長データを扱うための配列宣言は添字を省略する
*/
#ifndef _VARLEN
#define _VARLEN
#endif
#define HIBYTE(w) ((long)(w) >> 8 & 0x000000ff)
#define LOWBYTE(w) ((long)(w) & 0x000000ff)
#define HIWORD(l) ((long)(l) >> 16 & 0x0000ffff)
#define LOWWORD(l) ((long)(l) & 0x0000ffff)
#define LONGWORD(h,l) ((long)(h) << 16 | LOWWORD(l))
/*
* メモリマン (Memory Man)
*
* ハンドル処理関数(MMChHdlNew、MMHdlDisposeなど)を利用し易くするため
* Handleを総称的なポインタ型void *に置き換えて関数プロトタイプを行う
*/
#ifndef _Handle
#define _Handle void *
#endif
/*
* キーボードマン (Keyboard Man)
*/
#define KS_SHIFT 1
#define KS_CTRL (1 << 1)
#define KS_OPT1 (1 << 2)
#define KS_OPT2 (1 << 3)
#define KS_KANA (1 << 8)
#define KS_ROMEJI (1 << 9)
#define KS_CODEIN (1 << 10)
#define KS_CAPS (1 << 11)
#define KS_INS (1 << 12)
#define KS_HIRA (1 << 13)
#define KS_ZEN (1 << 14)
#define KS_XF1 (1 << 16)
#define KS_XF2 (1 << 17)
#define KS_XF3 (1 << 18)
#define KS_XF4 (1 << 19)
#define KS_XF5 (1 << 20)
/*
* グラフマン (Graph Man)
*
* 文字配列LASCIIを関数プロトタイプやキャストで利用し易くするため
* unsigned char *に置き換えて使う
*/
#ifndef _LASCII
#define _LASCII unsigned char *
#endif
union Point {
struct {
short x;
short y;
} p;
LPoint x_y;
};
union Rect {
struct {
short left;
short top;
short right;
short bottom;
} d;
struct {
LPoint l_t;
LPoint r_b;
} l;
};
struct Region {
long size;
Rect bounds;
short data[_VARLEN]; /* ここは可変長データの先頭 */
};
struct Bitmap {
short type;
Rect rect;
char *base;
short line;
union {
struct {
long page;
short aPage;
} tbm;
unsigned short bRatio;
} opt;
};
struct Graph {
Bitmap *bmap;
Rect rect;
long (**procs)();
Region **visible;
Region **clipping;
short drawLvl;
unsigned short penMode;
Point penLoc;
Point penSize;
BitImg *penPat;
BitImg *exPat;
short workKind;
Handle workHdl;
unsigned short fgColor;
unsigned short bgColor;
short fontKind;
unsigned short fontFace;
unsigned short fontMode;
Point fontSize;
};
/*
* イベントマン (Event Man)
*/
enum EventCode {
E_IDLE,
E_MSLDOWN,
E_MSLUP,
E_MSRDOWN,
E_MSRUP,
E_KEYDOWN,
E_KEYUP,
E_UPDATE,
E_RESERVE1,
E_ACTIVATE,
E_RESERVE2,
E_RESERVE3,
E_SYSTEM1,
E_SYSTEM2,
E_USER1,
E_USER2 /* 15 */
};
#define EM_IDLE (1 << E_IDLE)
#define EM_MSLDOWN (1 << E_MSLDOWN)
#define EM_MSLUP (1 << E_MSLUP)
#define EM_MSRDOWN (1 << E_MSRDOWN)
#define EM_MSRUP (1 << E_MSRUP)
#define EM_KEYDOWN (1 << E_KEYDOWN)
#define EM_KEYUP (1 << E_KEYUP)
#define EM_UPDATE (1 << E_UPDATE)
#define EM_RESERVE1 (1 << E_RESERVE1)
#define EM_ACTIVATE (1 << E_ACTIVATE)
#define EM_RESERVE2 (1 << E_RESERVE2)
#define EM_RESERVE3 (1 << E_RESERVE3)
#define EM_SYSTEM1 (1 << E_SYSTEM1)
#define EM_SYSTEM2 (1 << E_SYSTEM2)
#define EM_USER1 (1 << E_USER1)
#define EM_USER2 (1 << E_USER2)
#define EM_EVERY 0xffff
struct Event {
short what;
union {
Window *win;
struct {
short code;
short ascii;
} key;
long data;
} whom;
unsigned long when;
Point where;
unsigned long how;
};
/*
* ウィンドウマン (Window Man)
*/
#define NONTITLE (_LASCII)"\0"
struct Window {
Graph graph;
unsigned short kind;
char visible;
char hilite;
char close;
char status;
unsigned short option;
Region **outside;
Region **inside;
Region **update;
long (**def)();
long defData;
LASCII **title;
unsigned short tWidth;
Control **control;
Window *next;
GScript **gScript;
long taskID;
};
/*
* サブウィンドウマン(Sub Window Man)
*/
#define WS_INSIDE_X 1
#define WS_INSIDE_Y 18
#define WS_CLOSE_W 10
struct Subwin {
Window win;
unsigned long priority;
};
/*
* コントロールマン (Control Man)
*/
#define CHRBTN_H 6
#define CHRBTN_V 19
#define RADBTN_H 32
#define RADBTN_V 9
#define CHKBOX_H 13
#define CHKBOX_V 13
#define SLDVOL_H 14
#define SLDVOL_V 16
#define ADJBTN_H 48
#define ADJBTN_V 18
#define SCRLBR_H 18
/*
* タスクマン (Task Man)
*/
#define TS_NAMEMAX 90 /* この値は変更できません */
union TsEvent {
struct {
short what;
long whom;
unsigned long when;
long whom2;
short what2;
short taskID;
} ts;
Event ev;
};
#endif __SXDEF2_H